Before a system can operate, it needs to be configured and initialized. Applications typically have two phases for configuration and initialization of systems. The first phase is at installation time; the second phase at run-time (or “post-install” time). Configurations at installation time are generally of installation scope; that is, all users of the application experience the results of this configuration. An example of an installation-scope configuration is the setting of rules data that all users of an application must use.
Some configuration actions, however, cannot be applied during the installation phase because they are of user scope; that is, the particular system needs configuration information or procedures that are related to a specific user. Because the concept of a particular user is not realized until application run-time, the proper time to perform this type of configuration action is after the application starts executing. An example of a user-scope configuration is obtaining a server name, a username, and password information from the user. Other examples of user-scope configurations include setting page size or layout preferences, choosing a default printer, or setting a display resolution prior to running the application (such as for games).
A user often runs the same application on different occasions and usually does not expect to nor desire to be prompted to provide the same configuration information each time the application is run. Preferably, the system prompts the user upon the first instance of running the application and not during subsequent uses. To achieve this outcome, the system should preserve its configuration state between run-times.
Industry is currently producing modular applications based on a modular application run-time platform, such as Eclipse. These applications are comprised of modules, called plug-ins or bundles, which, when run, contribute specific features or functions to the overall operation of the application. Each module may have its own post-install configuration requirements. Also, after an application is initially installed and other modules configured, a user can add modules to the application requiring configuration. Preferably, the configuration of the new modules does not require the reconfiguration of the existing modules. Thus, there is a need for an apparatus and method that can operate within the constructs of a modular application run-time platform, initially configure modules of a modular application after the application is installed, and preserve the configuration states of the modules for subsequent executions of the application.